// 导入axios
import axios from 'axios';
// 导入loading效果包
import nprogress from 'nprogress';
// 导入loading的css样式
import "nprogress/nprogress.css";
// 引入uuid唯一标识
import { v4 as uuidv4 } from 'uuid';
function GetUserTempId() {
  // 判断本地是否存储用户登录的唯一标识
  let userid = localStorage.getItem('userId')
  // 如果没有就创建一个,如果有的话就使用已有的
  if (!userid) {
    let id = uuidv4()
    localStorage.setItem('userId', id)
  }
  return userid;
}
// 创建axios实例对象
const request = axios.create({
  baseURL: '/api', //公共路径
  timeout: 5000,   //超时的时间
})

// 添加请求拦截器
request.interceptors.request.use((config) => {
  // 在发请求之前追加一个loading效果,开启loading效果
  nprogress.start()
  // 在请求头的位置携带公共参数,用户登录的唯一标识
  // config.headers.userTempId = GetUserTempId()
  // 读取token
  let token = localStorage.getItem('token')
  if (token) { 
    // 在请求头中添加token
    config.headers.token = token
  }
  // 返回数据
  return config
})


// 添加响应拦截器
request.interceptors.response.use((res) => {
  // 在数据回来之前关闭loading效果
  nprogress.done()
  // 简化服务器返回的数据
  return res.data
}), (error) => {
  return new Promise((resolve, reject) => { })
}

// 默认暴露请求
export default request;